package ${daoPackage};

import ${entityPackage}.${className}Entity;
import java.util.List;
import org.mybatis.spring.annotation.MapperScan;

/**
 * 描述：${codeName}<br>
 * @author：系统生成
 * @version:1.0
 */
@MapperScan
public interface ${className}Mapper{

	/**
     * 描述: 插入${codeName}
     * <p>创建人：系统自动生成 , ${nowDate}</p>
     * @param entity 需要插入的实体信息
     * @return
     */
	public Integer insert(${className}Entity entity);

	/**
     * 描述: 更新${codeName}
     * <p>创建人：系统自动生成 , ${nowDate}</p>
     * @param entity 需要更新的实体信息
     * @return
     */
	public Integer update(${className}Entity entity);

	/**
	* 描述: 全量更新${codeName}
	* <p>创建人：系统自动生成 , ${nowDate}</p>
	* @param entity 需要更新的实体信息
	* @return
	*/
	public Integer updateBak(${className}Entity entity);

	/**
	* 描述: 逻辑删除${codeName}
	* <p>创建人：系统自动生成 , ${nowDate}</p>
    <#list columnKeyDatas as item>
    * @param ${item.domainPropertyName} ${item.columnComment}
    </#list>
	* @return
	*/
	public Integer deleteLogical(${columnKeyParam});


	/**
     * 描述: 根据实体Id查询${codeName}
     * <p>创建人：系统自动生成 , ${nowDate}</p>
        <#list columnKeyDatas as item>
     * @param ${item.domainPropertyName} ${item.columnComment}
        </#list>
     * @return
     */
	public ${className}Entity findById(${columnKeyParam});

	<#if columnKeyParam !="">
	/**
     * 描述: 根据主键删除${codeName}
     * <p>创建人：系统自动生成 , ${nowDate}</p>
     	<#list columnKeyDatas as item>
	 * @param ${item.domainPropertyName} ${item.columnComment}
		</#list>
     * @return
     */
	public Integer deleteByPriKey(${columnKeyParam});
	</#if>

	/**
     * 描述: 根据条件查询${codeName}
     * <p>创建人：系统自动生成 , ${nowDate}</p>
     * @param entity 查询条件对应的实体信息
     * @return
     */
	public List<${className}Entity> getList(${className}Entity entity);

	/**
	 * 描述: 批量删除${codeName}
	 * <p>创建人：系统自动生成 , ${nowDate}</p>
     * @param entities 批量删除的实体类集合
	 * @return
     */
     public Integer batchDelete(List<${className}Entity> entities);

    <#--/**-->
    <#--* 描述: 批量更新${codeName}-->
    <#--* <p>创建人：系统自动生成 , ${nowDate}</p>-->
    <#--* @param entities 批量更新的实体类集合-->
    <#--* @return-->
    <#--*/-->
    <#--public Integer batchUpdate(List<${className}Entity> entities);-->

    <#--/**-->
    <#--* 描述: 批量增加${codeName}-->
    <#--* <p>创建人：系统自动生成 , ${nowDate}</p>-->
    <#--* @param entities 批量新增的实体类集合-->
    <#--* @return-->
    <#--*/-->
    <#--public Integer batchInsert(List<${className}Entity> entities);-->


	/*user customize code start*/


	/*user customize code end*/
}
